package com.example.demo.service;

import com.example.demo.model.Node;

import java.util.List;
import java.util.Map;

/**
 * @author ：Docin
 * @date ：Created in 2020/9/11 10:57
 * @description：
 * @modified By：
 */
public interface RoutingService {

    //分页查询终端列表
    List<Node> queryterminal(int page, int limit);
    int queryterminalCount();

    //得到所有终端
    List<Node> allNodes();

    //根据id查询某个终端信息
    Node getNode(Integer id);

    //根据id查询返回一组节点数据
    List<Node> getsomeNodes (Integer[] ids);

    //选取班长节点和备用节点
    Node[] election(Node[] allnodes);

    //初始化路由表
    void initRout (Node[] nd);

    //获取邻居节点
    void getNeibNodes(Node[] allnodes);

    //广播获取与邻节点的链路状态
    void broadcast(Node nd);

    //建立路由
    void routing(Node[] allnodes);

    //节点分簇位置与速度调整
    void setPosAndSpeed(Map<Integer, Object> cluster, int clusNum);

    //连编制分簇算法
    Map<Integer, Object> wca(Node[] nodes);

    //邻居点数组-》字符串转换
    String itos(Integer[] s);
    //邻居点字符串-》数组
    Integer[] stoi(String ss);


}
